package com.tfjybj.itoo.teach.provider.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tfjybj.itoo.teach.entity.SchoolCalendarEntity;
import com.tfjybj.itoo.teach.model.SchoolCalendarModel;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * SchoolCalendarDao接口
 * schoolCalendar表
 *
 * @author 田成荣
 * @version 2.0.0
 * @since 2.0.0 2018-11-08 19:34:10
 */
@Repository("schoolCalendarDao")
public interface SchoolCalendarDao extends BaseMapper<SchoolCalendarEntity> {
	
	//region 模板生成：模糊查询
	/**
     * 根据事件id模糊查询schoolCalendar
     *
     * @param eventId  事件id
     * @return 模糊查询的schoolCalendar集合
     * @author 田成荣
     * @since 2.0.0 2018-11-08 19:34:10
     */
    List<SchoolCalendarEntity> queryLikeEventId(@Param("eventId") String eventId);
	//endregion

    /* **********************************以下为非模板生成的内容********************************* */

    /**
     * 查询所有校历
     * @return list
     * @author 刘雅娟
     * @since 2018年11月17日20:07:17
     */
    List<SchoolCalendarEntity>  findSchoolCalender();

    /**
     * 根据年份查询校历信息
     * @return list
     * @author 刘雅娟
     * @since 2018年11月17日20:08:31
     */
    List<SchoolCalendarEntity> findByYear(String schoolYear);

    /**
     * 获取一周内校历事件
     * @param currentdate
     * @param weekdate
     * @return list
     */
    List<SchoolCalendarEntity> findCalenderByDate(@Param("currentdate") String currentdate, @Param("weekdate") String weekdate);

    /**
     * 获取选课时间
     * @param chooseClass
     * @return list
     * @author 刘雅娟
     */
    List<SchoolCalendarEntity> findCalenderChooseClass(String chooseClass);

    /**
     * 获取具体校历事件
     * @param termId
     * @param eventId
     * @return
     * @author 刘雅娟
     * @since 2018年11月29日15:55:55
     */
    SchoolCalendarEntity findCalendarEvent(@Param("termId") String termId, @Param("eventId") String eventId);

    /**
     * 按条件模糊分页查询校历信息
     * @param termId
     * @param roleId
     * @param schoolYear
     * @param pageNo
     * @param pageSize
     * @return
     */
    List<SchoolCalendarModel> queryCalendarByRoleIdListAndGradList(@Param("termId") String termId, @Param("roleId") String roleId, @Param("schoolYear") String schoolYear, Integer pageNo, Integer pageSize);
}
